void inputs :: init()
{
    OIS::ParamList parameters;
    unsigned long hWnd = 0;
    window -> getCustomAttribute("WINDOW", & hWnd);
    ostringstream windowHandleString;
    windowHandleString << hWnd;

    parameters.insert(OIS::ParamList::value_type("WINDOW", Ogre::StringConverter::toString(hWnd)));

//those settings unhide the cursor (from ogre's wiki snippets)
#if defined OIS_WIN32_PLATFORM
    parameters.insert(make_pair(string("w32mouse"),     string("DISCL_FOREGROUND" )));
    parameters.insert(make_pair(string("w32mouse"),     string("DISCL_NONEXCLUSIVE")));
    parameters.insert(make_pair(string("w32keyboard"),  string("DISCL_FOREGROUND")));
    parameters.insert(make_pair(string("w32keyboard"),  string("DISCL_NONEXCLUSIVE")));
#elif defined OIS_LINUX_PLATFORM
    parameters.insert(make_pair(string("x11mouse_grab"),    string("false")));
    parameters.insert(make_pair(string("x11mouse_hide"),    string("false")));
    parameters.insert(make_pair(string("x11keyboard_grab"), string("false")));
    parameters.insert(make_pair(string("XAutoRepeatOn"),    string("true")));
#elif defined OIS_APPLE_PLATFORM
    parameters.insert(make_pair(string("MacAutoRepeatOn"),  string("true")));
#endif
/* ### Inputs Objects ################################################## */
    inputmanager = OIS::InputManager :: createInputSystem(parameters);

    keyboard = static_cast<OIS::Keyboard *>
        (inputmanager -> createInputObject(OIS::OISKeyboard, true));
    mouse = static_cast<OIS::Mouse *>
        (inputmanager -> createInputObject  (OIS::OISMouse, true));
    mouse -> setEventCallback(this);
    keyboard -> setEventCallback(this);
}
